//
//  BaseTableViewController.swift
//  MASINAWEIBO
//
//  Created by MISSAJJ on 16/5/30.
//  Copyright © 2016年 MISSAJJ. All rights reserved.
//

import UIKit

/*
 通知 : 层级结构较深
 代理 : 父子 , 方法较多时候使用
 block: 父子, 方法较少时使用(一般情况一个方法)
 */
class BaseTableViewController: UITableViewController/*,VisitorViewDelegate */{
    
    // 定义标记记录用户登录状态
    var  isLogin  = false
    // 访客视图
    var visitorView: VisitorView?
    
    override func loadView() {
        
        // 判断用户是否登录, 如果没有登录就显示访客界面, 如果已经登录就显示tableview
        
        isLogin ? super.loadView() : setupVisitorView()
        
    }
    
    // MARK: - 内部控制方法
    private func setupVisitorView()
    {
        //设置访客视图:很重要,否则视图的数据将显示不出来
        visitorView = VisitorView.visitorView()
        view = visitorView
        
        
         // 2.设置代理
        visitorView?.delegate = self
        
        
        visitorView?.loginButton.addTarget(self, action: Selector("loginBtnClick:"), forControlEvents: UIControlEvents.TouchUpInside)
        visitorView?.registerButton.addTarget(self, action: Selector("registerBtnClick:"), forControlEvents: UIControlEvents.TouchUpInside)
        
        // 3.添加导航条按钮
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("registerBtnClick:"))
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登录", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("loginBtnClick:"))

        
    }
    // 用户注册
    @objc private func loginBtnClick(btn: UIButton)
    {
        MALog("")
    }
    // 用户登录
    @objc private func registerBtnClick(btn: UIButton)
    {
        MALog("")
    }
    
    
//    // 用户注册
//    func visitorViewDidClickLoginBtn(visitor: VisitorView)
//    {
//        MALog("")
//    }
//    // 用户登录
//    func visitorViewDidClickRegisterBtn(visitor: VisitorView)
//    {
//        MALog("")
//    }
}

//如果没有在顶部定义代理协议,就在这里单独写代理方法
extension BaseTableViewController: VisitorViewDelegate
{
    // 用户注册
    func visitorViewDidClickLoginBtn(visitor: VisitorView)
    {
        MALog("")
    }
    // 用户登录
    func visitorViewDidClickRegisterBtn(visitor: VisitorView)
    {
        MALog("")
    }
}